/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package zonasoft.Utilidades;

import java.io.IOException;
import java.net.InetAddress;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import zonasoft.Vistas.VentanaPrincipal;
import zonasoft.Vistas.inicioSesion;

/**
 *
 * @author Usuario
 */
public class mailMac {
    /**
     metodo que me notifica cuando 
     * un usuario ha iniciado sesion en un computados habilitado por 
     * el administrador
     */
    public static void enviarAuditoriaSession() throws MessagingException{
    // una cuenta de gmail.
// ConfiguracionInicial auditor=new ConfiguracionInicial("backupdb.properties");


               Properties props = new Properties();
                      props.put("mail.smtp.host", "smtp.gmail.com");
            props.setProperty("mail.smtp.starttls.enable","true");
            props.setProperty("mail.smtp.port", "587");
            props.setProperty("mail.smtp.user", "soportezonasoft@gmail.com");
            props.setProperty("mail.smtp.auth", "true");

            Session session = Session.getDefaultInstance(props, null);
            // session.setDebug(true);

             // Se compone la parte del texto
            BodyPart texto = new MimeBodyPart();
             String mac="";
             String ip = "";
                  String idUsuario = String.valueOf(inicioSesion.userActual.getId());
                  String nUsuario = inicioSesion.userActual.getLogin_usuario();
        try {
            mac = DireccionMac.getMacAddress();
            ip =  InetAddress.getLocalHost().getHostAddress();
        } catch (IOException ex) {
            Logger.getLogger(mailMac.class.getName()).log(Level.SEVERE, null, ex);
        }
            texto.setText("Ha iniciado sesion un usuario desde el equipo: " + mac +
                      "\n"+"DATOS DEL USUARIO"+
                       "\n"+ "   Identificacion: "+idUsuario + " \n"+ "   Usuario: "+nUsuario+
                      "\n"+"DATOS DEL EQUIPO"+
                      "\n" + "   Sistema Operativo: " + System.getProperty("os.name") +
                      "\n" + "   Direccion ip: " + ip +
                      "\n"+ "............................"+
                      "\n"+ "\n"+ "Enviado desde ZonaSoft - Sistema Experto Electoral"
                      );
            // Una MultiParte para agrupar texto e imagen.
            MimeMultipart multiParte = new MimeMultipart();
            multiParte.addBodyPart(texto);

                // Se compone el correo, dando to, from, subject y el
            // contenido.
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress("soportezonasoft@gmail.com"));
            message.addRecipient(
                Message.RecipientType.TO,
                new InternetAddress("soportezonasoft@gmail.com"));
            message.setSubject("Registro de inicio de sesion");
            message.setContent(multiParte);

            // Se envia el correo.
            Transport t = session.getTransport("smtp");
            t.connect("soportezonasoft@gmail.com", "zonasoft2011");
            t.sendMessage(message, message.getAllRecipients());
            t.close();

    } // fin del metodo
    
    /**
     metodo que me notifica si alguien ha intentando iniciar desde
     * un computador no habilitado por el administrador
     * 
     */
        public static void enviarAuditoriaInhabilitado() throws MessagingException{
    // una cuenta de gmail.
// ConfiguracionInicial auditor=new ConfiguracionInicial("backupdb.properties");


               Properties props = new Properties();
                      props.put("mail.smtp.host", "smtp.gmail.com");
            props.setProperty("mail.smtp.starttls.enable","true");
            props.setProperty("mail.smtp.port", "587");
            props.setProperty("mail.smtp.user", "soportezonasoft@gmail.com");
            props.setProperty("mail.smtp.auth", "true");

            Session session = Session.getDefaultInstance(props, null);
            // session.setDebug(true);

             // Se compone la parte del texto
            BodyPart texto = new MimeBodyPart();
             String mac="";
             String ip = "";
                  String idUsuario = String.valueOf(inicioSesion.userActual.getId());
                  String nUsuario = inicioSesion.userActual.getLogin_usuario();
        try {
            mac = DireccionMac.getMacAddress();
            ip =  InetAddress.getLocalHost().getHostAddress();
        } catch (IOException ex) {
            Logger.getLogger(mailMac.class.getName()).log(Level.SEVERE, null, ex);
        }
            texto.setText("Intruso encontrado en el equipo: " + mac +
                      "\n"+"DATOS DEL USUARIO"+
                       "\n"+ "   Identificacion: "+idUsuario + " \n"+ "   Usuario: "+nUsuario+
                      "\n"+"DATOS DEL EQUIPO"+
                      "\n" + "   Sistema Operativo: " + System.getProperty("os.name") +
                      "\n" + "   Direccion ip: " + ip +
                      "\n"+ "............................"+
                      "\n"+ "\n"+ "Enviado desde ZonaSoft - Sistema Experto Electoral"
                      );
            // Una MultiParte para agrupar texto e imagen.
            MimeMultipart multiParte = new MimeMultipart();
            multiParte.addBodyPart(texto);

                // Se compone el correo, dando to, from, subject y el
            // contenido.
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress("soportezonasoft@gmail.com"));
            message.addRecipient(
                Message.RecipientType.TO,
                new InternetAddress("soportezonasoft@gmail.com"));
            message.setSubject("Registro de Computador Inhabilitado");
            message.setContent(multiParte);

            // Se envia el correo.
            Transport t = session.getTransport("smtp");
            t.connect("soportezonasoft@gmail.com", "zonasoft2011");
            t.sendMessage(message, message.getAllRecipients());
            t.close();

    } // fin del metodo
}
